package solitaire.presentation;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.FlowLayout;

import javax.swing.Box;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

import solitaire.InterfacesControle.ICColonne;
import solitaire.InterfacesControle.ICTasDeCartesColorees;
import solitaire.controle.CSolitaire;

public class PSolitaire extends JFrame {

	private JPanel solitaire;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					//PSolitaire frame = new PSolitaire(new CSolitaire("test", new CUsine()));
					//frame.setVisible(true);

				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Initialise l'IHM.
	 * Sur les listeners, on appelle juste le controle, et tout est fait avec le controle
	 */
	public PSolitaire(final CSolitaire jeu) {
		setBackground(new Color(0, 128, 0));
		setBounds(100, 100, 1003, 543);
		getContentPane().setLayout(new BorderLayout(0, 0));
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		//Composant de la partie North
		JPanel sabot = new JPanel();
		//JComponent sabot = jeu.getSabot().getPresentation().getJComponent();
		//sabot.add(jeu.getSabot().getICCarteSommet().getPresentation().getJPanel());
		
		FlowLayout flowLayout = (FlowLayout) sabot.getLayout();
		flowLayout.setAlignment(FlowLayout.LEFT);
		
		final JComponent tasDeCartesCachees = jeu.getSabot().getPresentation().getJComponent();
		
		JPanel tasDeCartesColorees = new JPanel();

		//Composant partie South
		JPanel colonnesPanel = new JPanel();
		
		ICColonne[] colonnes = jeu.getColonne();
				
		for(int i=0;i<colonnes.length;i++){
			colonnesPanel.add(colonnes[i].getPresentation().getJComponent());	
		}

		Box north_panel = Box.createHorizontalBox();
		
		//tas colorees
		ICTasDeCartesColorees[] tasColorees = jeu.getTasDeCartesColorees();
		
		//Initialisation des tas colorees avec limage
		//JPanel tasDeCarreau = new JPanel();
		JComponent tasDeCarreau = tasColorees[0].getPresentation().getJComponent();
		ImageIcon imageCarreau = new ImageIcon (ClassLoader.getSystemResource("cartesCSHD/Carreau.gif")) ;
		JLabel labelCarreau = new JLabel(imageCarreau);
		tasDeCarreau.add(labelCarreau);
		tasDeCarreau.setOpaque(false);
		
		JComponent tasDePique = tasColorees[1].getPresentation().getJComponent();
		ImageIcon imagePique = new ImageIcon (ClassLoader.getSystemResource("cartesCSHD/Pique.gif")) ;
		JLabel labelPique = new JLabel(imagePique);
		tasDePique.add(labelPique);
		
		JComponent tasDeCoeur = tasColorees[2].getPresentation().getJComponent();
		ImageIcon imageCoeur = new ImageIcon (ClassLoader.getSystemResource("cartesCSHD/Coeur.gif")) ;
		JLabel labelCoeur = new JLabel(imageCoeur);
		tasDeCoeur.add(labelCoeur);
		
		JComponent tasDeTrefle = tasColorees[3].getPresentation().getJComponent();
		ImageIcon imageTrefle = new ImageIcon (ClassLoader.getSystemResource("cartesCSHD/Trefle.gif")) ;
		JLabel labelTrefle = new JLabel(imageTrefle);
		tasDeTrefle.add(labelTrefle);

		tasDeCartesColorees.add(tasDeCarreau);
		tasDeCartesColorees.add(tasDePique);
		tasDeCartesColorees.add(tasDeCoeur);
		tasDeCartesColorees.add(tasDeTrefle);

		sabot.add(tasDeCartesCachees);
		north_panel.add(sabot);
		
		north_panel.add(tasDeCartesColorees);
		getContentPane().add(north_panel, BorderLayout.NORTH);
		getContentPane().add(colonnesPanel, BorderLayout.CENTER);

	}
}
